fun main() {
    Car_01()
    Car_02("红色")
    Car_03("红色", "卡车")
    Car_04("黑色")
    Car_04(type = "大巴车")

    /**
     * 这是一辆汽车
     * 这是一辆红色的汽车
     * 这是一辆红色的卡车
     * 这是一辆黑色的卡车
     * 这是一辆红色的大巴车
     */
}

/**
 * 使用默认构造函数
 */
class Car_01 {
    //构造函数的一部分,执行初始化操作
    init {
        println("这是一辆汽车")
    }
}

/**
 * 带有参数的构造函数
 */
class Car_02 constructor(color: String) {
    init {
        println("这是一辆${color}的汽车")
    }
}

/**
 * 使用二级构造函数实现重载
 */
class Car_03 {
    constructor(color: String) {
        println("这是一辆${color}的汽车")
    }

    constructor(color: String, type: String) {
        println("这是一辆${color}的$type")
    }
}

/**
 * 使用默认参数的构造函数
 */
class Car_04 constructor(color: String = "红色", type: String = "卡车") {
    init {
        println("这是一辆${color}的$type")
    }
}